//Bilbiotecas usadas
#include <defines.h>
#ifndef VIDEO_H
#define VIDEO_H

// Constantes de Cores.
#define BLACK   	   0
#define BLUE           1
#define GREEN          2
#define CYAN           3
#define RED            4
#define MAGENTA        5
#define BROWN          6
#define LIGHTGRAY      7
#define DARKGRAY       8
#define LIGHTBLUE      9
#define LIGHTGREEN    10
#define LIGHTCYAN     11
#define LIGHTRED      12
#define LIGHTMAGENTA  13
#define YELLOW        14
#define WHITE         15

typedef struct mem_video
{
	char caracter;
	ubyte atributo;
} mem_video, * ap_mem_video;


class Video
{
  private:
	static ap_mem_video video_mem;
    static ubyte		 x,
						 y;
	static ubyte cor_atual;
    static void AtualizaCursor();
	static void pula_linha();

  public:
    static void scrolldown();
    static void scrollup();
	static void insline(int=Video::y);
	static void delline(int=Video::y);
	static void Inicializa();
	static void textblink(bool);
	static void textbackground (ubyte);
	static void textforeground (ubyte);
	static void gotoxy (ubyte, ubyte);
    static ubyte wherex ();
	static ubyte wherey ();
	static void clear();
    static void write(char *);
    static void put(char);
    static void printf(char*,...);
};

#endif
